CloudTrail 証跡に記録された S3 のデータイベントに、削除されたオブジェクト名が記録されない理由を教えてください。
困っていた内容
現在、CloudTrail 証跡でS3のデータイベントを収集しています。マネジメントコンソールでテスト用のオブジェクトを作成し、削除した際、CloudTrail 証跡に記録されたイベントには DeleteObjects API の実行が記録されていましたが、削除したオブジェクト名やプレフィックスの情報は含まれておらず、どのオブジェクト、どのプレフィックスが削除されたかを確認できませんでした。CloudTrail の証跡ログにて、削除したオブジェクト名やプレフィックスの記録が可能になる設定はありますか。
具体的な解決策
結論としては、削除したオブジェクト名やプレフィックスに関する情報が記録されていない原因はAPIの仕様によるものです。S3 にはオブジェクトを削除する API に DeleteObject と DeleteObjects の2種類があります。
DeleteObject API の実行では、CloudTrail 証跡にも削除対象のキーが記録されます。
DeleteObjects API の実行では、削除対象のキーが CloudTrail 証跡に記録されないという仕様があります。マネジメントコンソールからオブジェクトを削除した場合、DeleteObjects API が使用されるため、この API の仕様によりファイル名などの情報は記録されません。
なお、S3のサーバーアクセスログの場合、取得対象とするフォルダを限定することはできませんが、DeleteObjects API による削除でも対象のキーが記録されます。サーバーアクセスログはベストエフォートでの記録となるため、監査目的の場合には CloudTrailの証跡とサーバーアクセスログを併せて使用することも検討してください。